/*
 * Copyright 2009 Jinbo Lin. All rights reserved.
 * 
 * cn.edu.pku.model OfficeAutomation
 *
 * Created on 2009-12-25
 */
package cn.edu.pku.model;

import java.io.Serializable;
import java.util.Date;
import java.util.HashSet;
import java.util.Set;

/**
 * @author Jinbo Lin
 * 
 *  
 */
public class Task implements Serializable {

	/**
	 * 
	 */
	private static final long serialVersionUID = 22962842079179947L;
	private int taskId;
	private String taskName;
	private User assigner;
	private String goal;
	private String finished;
	private Date dateTime;
	private Date finishDateTime;
	private String removed;
	private String remark;
	
	private Set<User> assignees = new HashSet<User>();

	/**
	 * @return the taskId
	 */
	public int getTaskId() {
		return this.taskId;
	}

	/**
	 * @param taskId the taskId to set
	 */
	public void setTaskId(int taskId) {
		this.taskId = taskId;
	}

	/**
	 * @return the taskName
	 */
	public String getTaskName() {
		return this.taskName;
	}

	/**
	 * @param taskName the taskName to set
	 */
	public void setTaskName(String taskName) {
		this.taskName = taskName;
	}

	/**
	 * @return the assigner
	 */
	public User getAssigner() {
		return this.assigner;
	}

	/**
	 * @param assigner the assigner to set
	 */
	public void setAssigner(User assigner) {
		this.assigner = assigner;
	}

	/**
	 * @return the goal
	 */
	public String getGoal() {
		return this.goal;
	}

	/**
	 * @param goal the goal to set
	 */
	public void setGoal(String goal) {
		this.goal = goal;
	}

	/**
	 * @return the finished
	 */
	public String getFinished() {
		return this.finished;
	}

	/**
	 * @param finished the finished to set
	 */
	public void setFinished(String finished) {
		this.finished = finished;
	}

	/**
	 * @return the dateTime
	 */
	public Date getDateTime() {
		return this.dateTime;
	}

	/**
	 * @param dateTime the dateTime to set
	 */
	public void setDateTime(Date dateTime) {
		this.dateTime = dateTime;
	}

	/**
	 * @return the finishDateTime
	 */
	public Date getFinishDateTime() {
		return this.finishDateTime;
	}

	/**
	 * @param finishDateTime the finishDateTime to set
	 */
	public void setFinishDateTime(Date finishDateTime) {
		this.finishDateTime = finishDateTime;
	}

	/**
	 * @return the removed
	 */
	public String getRemoved() {
		return this.removed;
	}

	/**
	 * @param removed the removed to set
	 */
	public void setRemoved(String removed) {
		this.removed = removed;
	}

	/**
	 * @return the remark
	 */
	public String getRemark() {
		return this.remark;
	}

	/**
	 * @param remark the remark to set
	 */
	public void setRemark(String remark) {
		this.remark = remark;
	}

	/**
	 * @return the assignees
	 */
	public Set<User> getAssignees() {
		return this.assignees;
	}

	/**
	 * @param assignees the assignees to set
	 */
	public void setAssignees(Set<User> assignees) {
		this.assignees = assignees;
	}

	/**
	 * 
	 */
	public Task() {
	}

	/**
	 * @param taskId
	 * @param taskName
	 * @param assigner
	 * @param goal
	 * @param finished
	 * @param dateTime
	 * @param finishDateTime
	 */
	public Task(int taskId, String taskName, User assigner, String goal,
			String finished, Date dateTime, Date finishDateTime) {
		super();
		this.taskId = taskId;
		this.taskName = taskName;
		this.assigner = assigner;
		this.goal = goal;
		this.finished = finished;
		this.dateTime = dateTime;
		this.finishDateTime = finishDateTime;
	}

	/**
	 * @param taskId
	 * @param taskName
	 * @param assigner
	 * @param goal
	 * @param finished
	 * @param dateTime
	 * @param finishDateTime
	 * @param removed
	 * @param remark
	 * @param assignees
	 */
	public Task(int taskId, String taskName, User assigner, String goal,
			String finished, Date dateTime, Date finishDateTime,
			String removed, String remark, Set<User> assignees) {
		super();
		this.taskId = taskId;
		this.taskName = taskName;
		this.assigner = assigner;
		this.goal = goal;
		this.finished = finished;
		this.dateTime = dateTime;
		this.finishDateTime = finishDateTime;
		this.removed = removed;
		this.remark = remark;
		this.assignees = assignees;
	}
}
